package com.spring.authManage.dao;

import com.spring.authManage.pojo.RoleInfo;
import com.spring.authManage.pojo.RoleInfoParam;

import java.util.List;

public interface RoleInfoDao {
	/**
	 * 根据查询条件获取角色信息 不分页
	 * @param param
	 * @return
	 */
	public List<RoleInfo> queryAllRoleInfoByParam(RoleInfoParam roleInfoParam) throws Exception;
	/**
	 * 新增角色信息
	 * @param roleInfo
	 */
	public void addRoleInfo(RoleInfo roleInfo) throws Exception;
	/**
	 * 更新角色信息
	 * @param roleInfo
	 */
	public void updateRoleInfo(RoleInfo roleInfo) throws Exception;
	/**
	 * 根据角色ID获取角色信息
	 * @param id
	 * @return
	 */
	public RoleInfo getRoleInfoById(String id) throws Exception;
	/**
	 * 根据用户获取用户所有角色
	 * @param userId
	 * @return
	 */
	public List<RoleInfo> getRoleInfosByUser(String userId) throws Exception;
	/**
	 * 根据查询条件获取角色信息 分页
	 * @param param
	 * @return
	 */
	public RoleInfo queryRoles(RoleInfo roleInfo) throws Exception;
	/**
	 * 删除某角色所有权限
	 * @param roleId
	 */
	public void deleteRoleResources(String roleId) throws Exception;
	/**
	 * 添加(保存)角色权限
	 * @param infos
	 */
	public void updateRoleResources(List<RoleInfo> list) throws Exception;
	/**
	 * 根据权限名称查询所有拥有该权限的角色
	 * @param resourceName
	 * @return
	 */
	public List<RoleInfo> getRoleInfosByResourceName(String resourceName) throws Exception;
	/**
	 * 删除角色
	 * 
	 * @param id
	 * @return
	 */
	public void updateRoleById(String id) throws Exception;
	/**
	 * 重启删除角色
	 * @param roleId
	 */
	public void restartRoleById(String roleId) throws Exception ;
	/**
	 * 是否存在角色
	 * @param roleInfo
	 * @return
	 */
	public Integer isExistRole(RoleInfo roleInfo) throws Exception;
	/**
	 * 获取角色权限
	 * 
	 * @param request
	 * @param response
	 * @param roleId
	 */
	public List<RoleInfo> getRoleResource(String id) throws Exception;
}
